package com.yishusmt.wechatapi.wechatdev.utils;

import com.yishusmt.wechatapi.wechatdev.constant.WeChatConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.net.URISyntaxException;

/**
 * 微信上传临时素材
 *
 * @author zhangyi
 * @date 2018/8/29 14:29
 */
@Component
public class UploadFileUtil {
    /**
     * 上传临时素材
     *
     * 图片（image）: 2M，支持PNG\JPEG\JPG\GIF格式
     *
     * 语音（voice）：2M，播放长度不超过60s，支持AMR\MP3格式
     *
     * 视频（video）：10MB，支持MP4格式
     *
     * 缩略图（thumb）：64KB，支持JPG格式
     *
     * 文件名
     * media=
     *
     *
     *   参数	是否必须	说明
     *   access_token	是	调用接口凭证
     *   type	是	媒体文件类型，分别有图片（image）、语音（voice）、视频（video）和缩略图（thumb）
     *   media	是	form-data中媒体文件标识，有filename、filelength、content-type等信息
     *
     *
     *  {"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}
     *
     *
     *
     */
    public static final String MEDIA_URL = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE";


    @Autowired
    private AccessTokenUtil accessTokenUtil;

    @Autowired
    private HttpClientUtil httpClientUtil;

    public String upLoad(String filePath,String type) throws IOException, URISyntaxException {
        String url = MEDIA_URL
                .replace(WeChatConstant.ACCESS_TOKEN,accessTokenUtil.getAccessToken().getAccess_token())
                .replace("TYPE",type);
        return httpClientUtil.upLoadConnect(url, filePath);
    }

}
